#ifndef _QUEUE_H
#define _QUEUE_H

#ifdef __cplusplus
extern "C" {
#endif

#include "list.h"

typedef List Queue;

Queue* queue_create(void (*destroy)(void* data));
void queue_destroy(Queue* queue);

int queue_enqueue(Queue* queue, \
				  void* data);
int queue_dequeue(Queue* queue, \
				 void** data);
void* queue_peek(const Queue* queue);
int queue_size(const Queue* queue);



#ifdef __cplusplus
}
#endif

#endif